package B1;


public class ThermostaticWaterTank {

    private boolean isPowerOn = false;
    private double currentTemperature;
    private boolean hasWater;
    private boolean isTankBroken;

    // 模拟温度传感器检测温度
    public void setCurrentTemperature(double temperature) {
        this.currentTemperature = temperature;
    }

    // 模拟水量传感器检测水量
    public void setHasWater(boolean hasWater) {
        this.hasWater = hasWater;
    }

    // 模拟水箱是否损坏
    public void setTankBroken(boolean tankBroken) {
        this.isTankBroken = tankBroken;
    }

    public void checkAndControl() {
        // 如果水箱坏了，进行维修（这里只是简单打印信息模拟）
        if (isTankBroken) {
            System.out.println("水箱已损坏，正在进行维修。");
            return;
        }

        // 获取当前时间（这里简单模拟，实际应用中需要获取真实时间）
        int currentHour = getCurrentHour();

        if (currentHour == 23) {
            // 晚上11点，自动断开电源，进入休眠状态
            isPowerOn = false;
            System.out.println("晚上11点整，已自动断开电源，进入休眠状态。");
        } else if (currentHour == 7) {
            // 早上7点，自动进入恒温烧水过程
            isPowerOn = true;
            System.out.println("早上7点整，已自动进入恒温烧水过程。");
        }

        if (isPowerOn) {
            if (currentTemperature < 20 && hasWater) {
                // 温度低于20°且有水，打开继电器电源开始烧水
                isPowerOn = true;
                System.out.println("温度低于20°且水箱中有水，已打开电源开始烧水。");
            } else if (currentTemperature >= 100) {
                // 温度达到100°，断开电源
                isPowerOn = false;
                System.out.println("温度达到100°，已断开电源。");
            } else if (!hasWater) {
                // 无水时不打开电源烧水
                isPowerOn = false;
                System.out.println("水箱中无水，未打开电源烧水。");
            }
        }
    }

    // 模拟获取当前时间的小时数
    private int getCurrentHour() {
        // 这里只是简单返回一个固定值来模拟，实际应用中需要获取真实时间
        return 7;
    }

    public static void main(String[] args) {
        ThermostaticWaterTank tank = new ThermostaticWaterTank();

        // 模拟设置初始状态
        tank.setHasWater(true);
        tank.setCurrentTemperature(15);
        tank.setTankBroken(false);

        tank.checkAndControl();

        // 模拟温度升高到100°
        tank.setCurrentTemperature(100);
        tank.checkAndControl();

        // 模拟晚上11点
        tank.setCurrentTemperature(20);
        tank.setHasWater(true);
        tank.setTankBroken(false);
        tank.gettingToElevenPM();

        // 模拟早上7点
        tank.gettingToSevenAM();
    }

    private void gettingToElevenPM() {
        int currentHour = 23;
        if (currentHour == 23) {
            // 晚上11点，自动断开电源，进入休眠状态
            isPowerOn = false;
            System.out.println("晚上11点整，已自动断开电源，进入休眠状态。");
        }
    }

    private void gettingToSevenAM() {
        int currentHour = 7;
        if (currentHour == 7) {
            // 早上7点，自动进入恒温烧水过程
            isPowerOn = true;
            System.out.println("早上7点整，已自动进入恒温烧水过程。");
        }
    }
}